/**
 * 仪表盘页面脚本
 * 已移除认证检查，所有功能均可访问
 */
document.addEventListener('DOMContentLoaded', function() {
    // 系统已取消权限限制，所有页面都可以访问
    console.log("系统提示：已取消所有权限限制，所有功能均可直接访问");
    
    // 注册退出登录按钮事件
    const logoutBtn = document.getElementById('logoutBtn');
    if (logoutBtn) {
        logoutBtn.addEventListener('click', handleLogout);
    }
    
    // 初始化图表
    setTimeout(() => {
        initCharts();
    }, 300);
    
    /**
     * 处理退出登录
     * @param {Event} event - 点击事件
     */
    function handleLogout(event) {
        event.preventDefault();
        
        // 简化登出逻辑，不再需要API调用
        localStorage.removeItem('token');
        window.location.href = '/login';
    }
    
    /**
     * 初始化图表
     */
    function initCharts() {
        try {
            // 确保Chart.js已加载
            if (typeof Chart === 'undefined') {
                console.error('Chart.js未加载，无法渲染图表');
                return;
            }
            
            // 诊断分析图表
            const diagnosisCtx = document.getElementById('diagnosisChart');
            if (diagnosisCtx) {
                console.log('开始渲染诊断分析图表');
                
                // 确保Canvas元素存在并且可用
                if (diagnosisCtx.getContext) {
                    const ctx = diagnosisCtx.getContext('2d');
                    if (ctx) {
                        // 模拟数据 - 诊断数量
                        const monthData = [65, 59, 80, 81, 56, 55, 70, 75, 80, 81, 75, 65];
                        const monthLabels = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
                        
                        // 根据当前选择的时间范围获取数据
                        const timeRange = document.getElementById('diagnosisTimeRange') ? 
                                         document.getElementById('diagnosisTimeRange').value : 'month';
                        
                        // 根据时间范围选择数据
                        let labels, data;
                        if (timeRange === 'week') {
                            labels = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
                            data = [58, 65, 70, 75, 80, 70, 65];
                        } else if (timeRange === 'year') {
                            labels = monthLabels;
                            data = monthData;
                        } else { // month
                            // 获取当月的天数
                            const daysInMonth = 30; // 简化处理
                            labels = Array.from({length: daysInMonth}, (_, i) => `${i+1}日`);
                            
                            // 生成当月每天的数据
                            data = [];
                            for (let i = 0; i < daysInMonth; i++) {
                                // 模拟数据波动
                                if (i < 10) {
                                    data.push(60 + Math.floor(Math.random() * 10));
                                } else if (i < 20) {
                                    data.push(70 + Math.floor(Math.random() * 15));
                                } else {
                                    data.push(80 + Math.floor(Math.random() * 5));
                                }
                            }
                        }
                        
                        const diagnosisChart = new Chart(ctx, {
                            type: 'line',
                            data: {
                                labels: labels,
                                datasets: [{
                                    label: '诊断数量',
                                    data: data,
                                    fill: {
                                        target: 'origin',
                                        above: 'rgba(75, 192, 192, 0.1)'
                                    },
                                    borderColor: 'rgb(75, 192, 192)',
                                    borderWidth: 2,
                                    tension: 0.4,
                                    pointBackgroundColor: 'rgb(75, 192, 192)',
                                    pointBorderColor: '#fff',
                                    pointRadius: 4,
                                    pointHoverRadius: 6
                                }]
                            },
                            options: {
                                responsive: true,
                                maintainAspectRatio: false,
                                plugins: {
                                    legend: {
                                        display: false
                                    },
                                    tooltip: {
                                        backgroundColor: 'rgba(255, 255, 255, 0.9)',
                                        titleColor: '#333',
                                        bodyColor: '#666',
                                        borderColor: 'rgba(200, 200, 200, 0.5)',
                                        borderWidth: 1,
                                        padding: 10,
                                        displayColors: false
                                    }
                                },
                                scales: {
                                    x: {
                                        grid: {
                                            display: true,
                                            color: 'rgba(200, 200, 200, 0.2)'
                                        },
                                        ticks: {
                                            color: '#666',
                                            font: {
                                                size: 10
                                            },
                                            maxRotation: 0,
                                            autoSkip: true,
                                            maxTicksLimit: 10
                                        }
                                    },
                                    y: {
                                        beginAtZero: false,
                                        grid: {
                                            display: true,
                                            color: 'rgba(200, 200, 200, 0.2)'
                                        },
                                        ticks: {
                                            color: '#666',
                                            font: {
                                                size: 11
                                            }
                                        }
                                    }
                                }
                            }
                        });
                        
                        // 添加时间范围切换事件
                        const timeRangeSelect = document.getElementById('diagnosisTimeRange');
                        if (timeRangeSelect) {
                            timeRangeSelect.addEventListener('change', function() {
                                // 销毁旧图表
                                diagnosisChart.destroy();
                                // 重新初始化图表
                                initCharts();
                            });
                        }
                        
                        console.log('诊断分析图表渲染完成');
                    } else {
                        console.error('无法获取canvas上下文');
                    }
                } else {
                    console.error('diagnosisChart元素不支持canvas');
                }
            } else {
                console.error('未找到diagnosisChart元素');
            }
            
            // 患者年龄分布图表
            const patientAgeCtx = document.getElementById('patientAgeChart');
            if (patientAgeCtx) {
                console.log('开始渲染患者年龄分布图表');
                
                // 确保Canvas元素存在并且可用
                if (patientAgeCtx.getContext) {
                    const ctx = patientAgeCtx.getContext('2d');
                    if (ctx) {
                        const patientAgeChart = new Chart(ctx, {
                            type: 'doughnut',
                            data: {
                                labels: ['0-18岁', '19-30岁', '31-45岁', '46-60岁', '60岁以上'],
                                datasets: [{
                                    label: '患者数量',
                                    data: [15, 29, 35, 40, 25],
                                    backgroundColor: [
                                        'rgba(255, 99, 132, 0.7)',
                                        'rgba(54, 162, 235, 0.7)',
                                        'rgba(255, 206, 86, 0.7)',
                                        'rgba(75, 192, 192, 0.7)',
                                        'rgba(153, 102, 255, 0.7)'
                                    ],
                                    borderColor: [
                                        'rgba(255, 99, 132, 1)',
                                        'rgba(54, 162, 235, 1)',
                                        'rgba(255, 206, 86, 1)',
                                        'rgba(75, 192, 192, 1)',
                                        'rgba(153, 102, 255, 1)'
                                    ],
                                    borderWidth: 1,
                                    hoverOffset: 10
                                }]
                            },
                            options: {
                                responsive: true,
                                maintainAspectRatio: false,
                                cutout: '60%',
                                plugins: {
                                    legend: {
                                        position: 'bottom',
                                        labels: {
                                            padding: 15,
                                            usePointStyle: true,
                                            pointStyle: 'circle',
                                            font: {
                                                size: 11
                                            }
                                        }
                                    },
                                    tooltip: {
                                        backgroundColor: 'rgba(255, 255, 255, 0.9)',
                                        titleColor: '#333',
                                        bodyColor: '#666',
                                        borderColor: 'rgba(200, 200, 200, 0.5)',
                                        borderWidth: 1,
                                        padding: 10,
                                        callbacks: {
                                            label: function(context) {
                                                const label = context.label || '';
                                                const value = context.raw || 0;
                                                const total = context.chart.data.datasets[0].data.reduce((a, b) => a + b, 0);
                                                const percentage = Math.round((value / total) * 100);
                                                return `${label}: ${value}人 (${percentage}%)`;
                                            }
                                        }
                                    }
                                }
                            }
                        });
                        console.log('患者年龄分布图表渲染完成');
                    } else {
                        console.error('无法获取canvas上下文');
                    }
                } else {
                    console.error('patientAgeChart元素不支持canvas');
                }
            } else {
                console.error('未找到patientAgeChart元素');
            }
        } catch (error) {
            console.error('图表初始化失败:', error);
        }
    }
    
    // 隐藏图表加载提示
    const chartPlaceholders = document.querySelectorAll('.chart-placeholder');
    chartPlaceholders.forEach(placeholder => {
        placeholder.style.display = 'none';
    });
    
    // 手动触发图标替换
    if (window.iconManager && typeof window.iconManager.replaceAll === 'function') {
        window.iconManager.replaceAll();
    }
}); 